package com.ua.secure.module.service;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.ua.common.model.SysModule;
import com.ua.common.model.SysRight;
import com.ua.secure.module.persistence.ModuleMapper;


@Service
public class ModuleServiceImpl implements ModuleService {
	
	@Autowired
	private ModuleMapper mapper;
	
	@Override
	public void save(SysModule module) {
		mapper.save(module);
	}
	
	@Transactional
	public void update(SysModule module) {
		mapper.update(module);
	}

	@Override
	public List<SysModule> loadModulesData() {
		List<SysModule> r = new ArrayList<SysModule>();
		r = mapper.loadModulesData();
		return r;
	}

	@Override
	public void deleteModule(String moduleId) {
		mapper.deleteRightByModuleId(moduleId);
		mapper.deleteModule(moduleId);
	}

	@Override
	public SysModule queryModuleByModuleId(String moduleId) {
		return mapper.queryModuleByModuleId(moduleId);
	}

	@Override
	public boolean checkRightCodeIsExits(String rightCode) {
		Integer count = mapper.checkRightCodeIsExits(rightCode);
		if(count!=null && count>0){
			return true;
		}
		return false;
	}

	@Override
	public void saveRight(SysRight right) {
		mapper.saveRight(right);
	}

	@Override
	public List<SysModule> queryChildModuleByModuleId(String moduleId) {
		return mapper.queryChildModuleByModuleId(moduleId);
	}

	@Override
	public void updateSeqNumBatch(String modules) {
		if(modules!=null && !"".equals(modules)){
			String[] moduleIds = modules.split(",");
			for(int i=0;i<moduleIds.length;i++){
				SysModule module = new SysModule();
				module.setModuleId(moduleIds[i]);
				module.setSeqNum(i);
				mapper.updateSeqNum(module);
			}
		}
	}

}
